// 用于创建Vuex最为核心的store

// 引入Vuex
import Vuex from 'vuex'
// 引入Vue
import Vue from 'vue'
// 使用Vuex
Vue.use(Vuex)
    // 用于响应组件中的状态
const actions = {
        // jia(context, value) {
        //     console.log('actions中的jia被调用了', context, value);
        //     context.commit('JIA', value)
        // },
        // jian(context, value) {
        //     console.log('actions中的jian被调用了', context, value);
        //     context.commit('JIAN', value)
        // },
        jiaOdd(context, value) {
            console.log('actions中的jiaOdd被调用了', context, value);
            if (context.state.sum % 2) {
                context.commit('JIA', value)
            }
        },
        jiaWait(context, value) {
            console.log('actions中的jiaWait被调用了', context, value);
            setTimeout(() => {
                context.commit('JIA', value)
            }, 500)
        },
    }
    // 用于操作数据(state)
const mutations = {
        JIA(state, value) {
            console.log('mutations中的JIA被调用了', state, value);
            state.sum += value
        },
        JIAN(state, value) {
            console.log('mutations中的JIAN被调用了', state, value);
            state.sum -= value
        },
    }
    // 用于存储数据
const state = {
    sum: 0,
    school: 'bugdr',
    subject: '编译原理'
}

// 准备gtters，用于将state中的数据进行加工
const getters = {
    bigSum(state) {
        return state.sum * 10
    }
}

// 暴露并且创建store
export default new Vuex.Store({
    actions,
    mutations,
    state,
    getters,
})